home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / dos / prg / pas / swag / win_os2.swg / 0037_Using VER.DLL.pas < prev    next >
Pascal/Delphi Source File  |  1994-08-25  |  2KB  |  49 lines

  1. {
  2. From: ZWEITZE@et.tudelft.nl (Zweitze de Vries)
  3.  
  4. >Does anyone have examples of installation programs that use
  5. >the file installation library (VER.DLL) in BP7?
  6.  
  7. Since all installation programs do the same thing, why reinvent
  8. the wheel? Just buy one, it should be cheaper than developing
  9. your own. There are also some share/freeware apps around (try CICA).
  10.  
  11. In respect to your question, I have some code that fills a dialog
  12. box ('About...') according to the version information resource:
  13. }
  14.  
  15. procedure THelpAbout.SetUpWindow;
  16. var
  17.   lVerInfoSize: LongInt;
  18.   lVerHandle: LongInt;
  19.   szModuleName: array [0..fsPathName] of Char;
  20.   pVerData: PChar;
  21.   Buffer: Pointer;
  22.   lenBuffer: Word;
  23. begin
  24.   TDialog.SetupWindow;
  25.   GetModuleFileName(hInstance, szModuleName, SizeOf(szModuleName));
  26.   lVerInfoSize := GetFileVersionInfoSize(szModuleName, lVerHandle);
  27.   if lVerInfoSize = 0 then Exit;
  28.   GetMem(pVerData, lVerInfoSize);
  29.   if not GetFileVersionInfo(szModuleName, lVerHandle, lVerInfoSize, pVerData)
  30.     then Exit;
  31.   if VerQueryValue(pVerData, '\StringFileInfo\CATE\ProductName',
  32.                    Buffer, LenBuffer)
  33.      and (LenBuffer <> 0)
  34.     then SetDlgItemText(hWindow, stat_AppName, Buffer);
  35.   if VerQueryValue(pVerData, '\StringFileInfo\CATE\ProductVersion',
  36.                    Buffer, LenBuffer)
  37.      and (LenBuffer <> 0)
  38.     then SetDlgItemText(hWindow, stat_AppVersion, Buffer);
  39.   if VerQueryValue(pVerData, '\StringFileInfo\CATE\CompanyName',
  40.                    Buffer, LenBuffer)
  41.      and (LenBuffer <> 0)
  42.     then SetDlgItemText(hWindow, stat_AppCompany, Buffer);
  43.   if VerQueryValue(pVerData, '\StringFileInfo\CATE\LegalCopyright',
  44.                    Buffer, LenBuffer)
  45.      and (LenBuffer <> 0)
  46.     then SetDlgItemText(hWindow, stat_AppCopyright, Buffer);
  47.   FreeMem(pVerData, lVerInfoSize);
  48. end;
  49.